/**
 * @file 用户相关 API
 * @description 用户管理和密码管理相关的 API 接口
 * @author Fieldano Team
 * @创建时间 2025-10-31
 */

import { ajax } from '@/ajax/ajax'

interface SavePasswordResponse {
  deleted_ids: number[]
  save_data: F2.user.UserCredential
}

interface SaveBookmarkResponse {
  deleted_ids: number[]
  save_data: F2.bookmark.Bookmark
}

export const userApi = {
  /**
   * 获取密码列表
   * @returns Promise<F2.user.UserCredential[]>
   */
  passList(): Promise<F2.user.UserCredential[]> {
    return ajax.postData<F2.user.UserCredential[]>('browser/passwordList')
  },
  /**
   * 保存/更新密码
   * @param data 密码凭据数据
   * @returns Promise<SavePasswordResponse>
   */
  passUpdate(data: {
    delete_ids?: number[]
    save_data?: F2.user.UserCredential
  }): Promise<SavePasswordResponse> {
    return ajax.postData<SavePasswordResponse>('browser/savePassword', data)
  },

  /**
   * 获取书签列表
   */
  bookmarkList(): Promise<F2.bookmark.Bookmark[]> {
    return ajax.postData<F2.bookmark.Bookmark[]>('browser/bookmarkLists')
  },

  /**
   * 保存/更新书签
   */
  bookmarkUpdate(data: {
    delete_ids?: number[]
    save_data?: F2.bookmark.Bookmark
  }): Promise<SaveBookmarkResponse> {
    return ajax.postData<SaveBookmarkResponse>('browser/saveBookmark', data)
  }
}

export default userApi
